home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
install
/
instlib.c
< prev
next >
Wrap
Text File
|
1994-09-20
|
9KB
|
348 lines
/*************************************************************************
* âëâCâuâëâè
*************************************************************************/
int _puts_bold(int x, int y, int col, char *s);
/*************************************************************************
* âVâXâeâÇìsâNâèâA
*************************************************************************/
int syl_clear()
{
char *msg, tmp[80];
SCN_wrtPage(1);
MOS_DEC();
sprintf(tmp,"PRESENTED by %c%c", Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF );
msg = "ôVÉ░CD Vol.1 ö≥ù┤é╠è¬";
SCN_boxf(0,464,639,479,PSET,ColMesh);
_puts_bold( 232 ,464 , PltNoWhite,msg);
SCN_puts(Fnt16x16,tmp,232+23*8+1,464+1,PSET,C_MBLACK ,0);
SCN_puts(Fnt16x16,tmp,232+23*8 ,464 ,PSET,PltNoWhite,0);
MOS_INC();
}
/*************************************************************************
* âVâXâeâÇìsé╔ò╢ÄÜù±ò\Ī
*************************************************************************/
int syl_putf(char *form)
{
char tmp[256];
char *ap;
int n, x;
va_start(ap,form);
vsprintf(tmp+6,form,ap);
va_end(ap);
SCN_wrtPage(1);
MOS_DEC();
SCN_boxf(0,464,639,479,PSET,ColMesh);
EGB_textDirection(EgbPtr,0); /* ò╢ÄÜò√îⁿ */
EGB_textDisplayDirection(EgbPtr,0); /* ò\Īò√îⁿ */
EGB_textSpace(EgbPtr,0); /* ÄÜè╘ */
EGB_textZoom(EgbPtr,0, 8, 16 ); /* ANK */
EGB_textZoom(EgbPtr,1, 16, 16 ); /* è┐ÄÜ */
EGB_fontStyle(EgbPtr,1+4); /* ÄÜæ╠ */
EGB_color(EgbPtr,0,C_HGREEN);
EGB_color(EgbPtr,1,C_MBLACK);
EGB_paintMode(EgbPtr,0x022);
EGB_writeMode(EgbPtr,PSET);
n = strlen(tmp+6);
x = (640 - n * 8) / 2;
_setWord(tmp+0, x );
_setWord(tmp+2, 464+15);
_setWord(tmp+4, n );
EGB_sjisString( EgbPtr, tmp);
MOS_INC();
}
int _puts_bold(int x, int y, int col, char *s)
{
char para[256];
EGB_textDirection(EgbPtr,0); /* ò╢ÄÜò√îⁿ */
EGB_textDisplayDirection(EgbPtr,0); /* ò\Īò√îⁿ */
EGB_textSpace(EgbPtr,0); /* ÄÜè╘ */
EGB_textZoom(EgbPtr,0, 8, 16 ); /* ANK */
EGB_textZoom(EgbPtr,1, 16, 16 ); /* è┐ÄÜ */
EGB_fontStyle(EgbPtr,1+4); /* ÄÜæ╠ */
EGB_color(EgbPtr,0,col );
EGB_color(EgbPtr,1,C_MBLACK);
EGB_paintMode(EgbPtr,0x022);
EGB_writeMode(EgbPtr,PSET);
_setWord(para+0, x );
_setWord(para+2, y+15 );
_setWord(para+4, strlen(s));
strcpy(para+6,s);
EGB_sjisString( EgbPtr, para);
}
char *add_path_fn(char *path, char *fn)
{
int len;
len = strlen(path);
if ( len == 0 || !FS_isDelim(path[len-1]) )
path[len++] = FsPathDelim;
strcpy( path + len, fn );
return (path);
}
/*************************************************************************
* öwîiùpTIFFò\Ī
*************************************************************************/
int tif_load(char *fn)
{
char *img;
SCN_wrtPage(0);
if ( (img = IMG_open()) != NULL )
{
IMG_setPage(img,0); /* ò\Īâyü[âWÄwÆΦ */
IMG_setAtt(img,IMG_ATT_PLTON); /* âpâîâbâgÉ▌ÆΦæ«É½ON */
IMG_setColor( img, C_MBLACK, C_MWHITE);
if ( IMG_load(img,fn) == NORMAL )
{
IMG_setPos(img,0,0); /* ò\Īê╩ÆuòΓÉ│ */
EGB_color(EgbPtr,1,C_MBLACK); /* öwîiÉF */
EGB_clearScreen(EgbPtr);
EGB_paintMode(EgbPtr,0x22);
IMG_dsp(img);
}
IMG_close(img);
}
SCN_wrtPage(1);
return (NORMAL);
}
/*************************************************************************
* TIFFò\Ī
*************************************************************************/
int tiflist_disp( char **list )
{
int i, x, y, ret, pixel, md, x0, y0;
char *img;
short fr[4];
char *fn;
SCN_wrtPage(1);
APL_save_desktop();
SCN_boxf(0,0,639,479,PSET,0);
SCN_wrtPage(0);
for ( i = 0; list[i] != NULL; ++i )
{
fn = list[i];
if ( (img = IMG_open()) != NULL )
{
IMG_setAtt(img,IMG_ATT_PLTON); /* âpâîâbâgÉ▌ÆΦæ«É½ON */
if ( IMG_load(img,fn) == NORMAL )
{
IMG_getFr(img,fr);
pixel = IMG_getPixel(img);
switch ( pixel )
{
case 1: /* âéâmâNâì */
case 4: /* 16ÉF */
x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
md = 3;
break;
case 8: /* 256 ÉF */
x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
md = 12;
break;
case 16: /* 32768 ÉF */
if ( fr[2] - fr[0] + 1 <= 320 )
{
x0 = (320 - (fr[2] - fr[0] + 1)) / 2;
y0 = (240 - (fr[3] - fr[1] + 1)) / 2;
md = 10;
} else
{
x0 = (512 - (fr[2] - fr[0] + 1)) / 2;
y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
md = 17;
}
break;
default:
goto _TIF_ERR;
}
IMG_setPos(img,x0,y0); /* ò\Īê╩ÆuòΓÉ│ */
MOS_COFF(); /* â}âEâXâJü[â\âïÅ┴ïÄ */
EGB_displayPage(EgbPtr,0,0);
EGB_writePage(EgbPtr,0);
EGB_clearScreen(EgbPtr);
EGB_resolution(EgbPtr,0,md); /* ëµû╩âéü[âhÉ▌ÆΦ */
if ( md == 3 || md == 10 )
{
EGB_resolution(EgbPtr,1,3); /* ëµû╩âéü[âhÉ▌ÆΦ */
EGB_writePage(EgbPtr,1);
EGB_clearScreen(EgbPtr);
}
EGB_writePage(EgbPtr,0);
if ( md == 10 )
{
EGB_displayStart(EgbPtr,2,2,2);
EGB_displayStart(EgbPtr,3,320,240);
}
EGB_color(EgbPtr,1,0);
EGB_clearScreen(EgbPtr);
IMG_dsp(img);
if ( md == 3 || md == 10 )
EGB_displayPage(EgbPtr,1,3);
else
EGB_displayPage(EgbPtr,0,1);
_apl_wait(CLOCKS_PER_SEC * 8);
while ( PD_getp(&x,&y) )
;
}
IMG_close(img);
}
}
EGB_writePage(EgbPtr,0);
EGB_clearScreen(EgbPtr);
SCN_sysReinit();
disp_desktop();
SCN_wrtPage(1);
APL_load_desktop();
syl_clear();
return (NORMAL);
}
int mveplay(char *fnmve, int loop)
{
char para[256];
sprintf(para,"-loop %d %s", loop, fnmve );
exprun("/OH_TOWNS/DEMOTOOL/mveplay.exp", para );
return (0);
}
int exprun(char *fn, char *para)
{
unsigned int siz;
int md;
char tmp[256];
char *dlgTxm;
siz = APL_getFreeMem();
if ( siz < 2 * 1024 * 1024 )
{ /* âüâéâèòsæ½ */
dlgTxm = DlgTxm_open(ColBoxError);
DlgTxm_setTitle(dlgTxm,Fnt16x16, "OUT OF MEMORY");
DlgTxm_putf( dlgTxm, Rom16x16, TXMDAT_ATT_CENTER,"");
DlgTxm_putf( dlgTxm, Rom16x16, TXMDAT_ATT_CENTER,
"âüâéâèòsæ½é╠é╜é▀Ä└ìsé┼é½é▄é╣é±üB" );
DlgTxm_putf( dlgTxm, Rom16x16, TXMDAT_ATT_CENTER,"");
DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK,
C_WHITE, C_HILIGHT, C_DARK, '\r', KA_EXEC, 0, "", 0, "OK : [Ä└ìs]");
DlgTxm_setSize(dlgTxm,480,48);
DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
DlgTxm_start(dlgTxm);
DlgTxm_close(dlgTxm);
return (-1);
}
FS_chdrv( toupper(DirStart[0]) - 'A' );
FS_getDnam(tmp,fn);
add_path_fn(tmp,".");
FS_chdir(tmp);
/* ëµû╩ò█æ╢ */
SCN_wrtPage(1);
APL_save_desktop();
/* âlâCâeâBâuâéü[âhÄqâvâìâZâXâvâìâOâëâÇé╠ïNô« */
md = APLPCL_SET_STARTPATH | APLPCL_SET_PCP;
AplDtaInit();
if ( para != NULL && *para != '\0' )
{
AplDtaSetStr("$MainArg","%s %s", fn, para);
if ( strlen(fn) + strlen(para) + 1 >= 128 )
md &= (~APLPCL_SET_PCP);
}
PCL_exec(fn,md);
/* ëµû╩ì─É▌ÆΦ */
SCN_sysReinit();
disp_desktop();
SCN_wrtPage(1);
APL_load_desktop();
syl_clear();
return (NORMAL);
}
/*************************************************************************
* Éαû╛ò\ĪüiâCâxâôâgÅêù¥è╓Éöüj
*************************************************************************/
int inst_help( int evNo, char *evDat, char *fn)
{
char tmp[256];
FS_chdrv(toupper(DirStart[0]) - 'A');
sprintf(tmp,"%s.",DirStart);
FS_chdir(tmp);
APL_textView(Rom16x16,608,391,17,fn,"HELP FILE : %s", fn);
return (evNo);
}
/*************************************************************************
* âCâôâXâgü[âïÅIù╣âüâbâZü[âW
*************************************************************************/
int install_end( char *soft_name, int err )
{
char *dlgTxm;
int colbox;
char *msg;
msg = err == 0 ? "âCâôâXâgü[âïé¬ÅIéφéΦé▄é╡é╜üB"
: "âCâôâXâgü[âïé╔Ä╕ösé╡é▄é╡é╜üB";
colbox